gusucode.com > 现代通信系统——使用MATLAB(+全部程序) > 现代通信系统——使用MATLAB(+全部程序)/现代通信系统——使用MATLAB(+全部程序)/Matlab 程序/Chapter10/programs/prgs/depfun/srcsicon.m

    function [x,y] = srcsicon(fla)
%   Copyright 1996-2001 The MathWorks, Inc.
%       $Revision: 1.11 $

% fla == 1 sin
% fla == 2 pulse
% fla == 3 noise
% fla == 4 interger
% fla == 5 binary
% fla == 6 from file
% fla == 7 from wkspace
% fla == 8 to file
% fla == 9 to wkspace
% fla == 10 eye pattern diagram.

x1 = [95  5 10 10 10];
y1 = [75 75 75 70 95];

N = 30;

if fla == 1
    x2 = [0:1/N:1];
    y2 = sin(x2*pi*2)*10+85;
    x2 = (100-15)*x2+10;
elseif fla == 2
    N = ceil(N/2);
    x2 = [0:N, N:-2:0 0];
    y2 = [(rem(x2(1:N+1), 2) == 0) (rem(ceil(x2(N+2:length(x2))/2), 2) == 0)+2];
    y2 = y2 * 5 + 80;
    x2 = x2 / N;
    N = length(x2);
    x2= [x2(1:N-1)' x2(2:N)']';
    x2 = (100-15)*x2(:)'+ 10;
    y2 = [y2(1:N-1)' y2(1:N-1)']';
    x2 = x2(:)';
    x2 = 100-x2;
    y2 = y2(:)';
    x1 = find(x2==min(x2));
    x1=x1(1);
    x2 = [x2(1:x1) x2(x1) x2(x1) x2(x1) x2(x1)-5 x2(x1)+85 x2(x1) x2(x1) x2(x1+1:length(x2))];
    y2 = [y2(1:x1) 98     70     75     75       75        75     y2(x1) y2(x1+1:length(y2))];
    x2=x2+5;
    x1=[];y1=[];
elseif fla == 3
    y2 = rand(1,N+1)*20+75;
    x2 = (100-15)*[0:1/N:1]+10;
elseif (fla == 4) | (fla == 5)
    N = ceil(N/2);
    y2 = rand(1,N+1)*20 + 75;
    if fla == 5
        y2 = (rand(1,N+1) > .5)*10 + 80;
    end;
    x2 = (100-15)*[0:1/N:1]+10;
    x2= [x2(1:N)' x2(2:N+1)']';
    y2 = [y2(1:N)' y2(1:N)']';
    x2 = x2(:)';
    y2 = y2(:)';
elseif fla == 6
    x2 = [0:1/N:1];
    z = exp(j*pi*([0:20]/10+1/2));
    x = [25 25 05 05 25 25 05 13 13 17 17 17 15];
    y = [85 95 95 75 75 89 89 89 95 95 89 89 89];
    x1 = [x real(z)*3.5+15 15 25 25];
    y1 = [y imag(z)*3.5+85 89 89 85];
    y2 = sin(x2*pi*2)*10+y(1);
    x2 = (100-x(1)-5)*x2+x(1); 
%    x = [x x2];
%    y = [y y2];
elseif fla == 7
    x2 = [0:1/N:1];
    x1 = [25 25 05 05 07 12 07 12 07 12 17 12 17 12 25 25];
    y1 = [85 95 95 75 75 83 91 83 75 75 83 91 83 75 75 85];
    y2 = sin(x2*pi*2)*10+y1(1);
    x2 = (100-x1(1)-5)*x2+x1(1); 
elseif fla == 8
    x2 = [0:1/N:1];
    z = exp(j*pi*([0:20]/10+1/2));
    x = [25 25 05 05 25 25 05 13 13 17 17 17 15];
    y = [85 95 95 75 75 89 89 89 95 95 89 89 89];
    x1 = [x real(z)*3.5+15 15 25 25];
    y1 = [y imag(z)*3.5+85 89 89 85];
    y2 = -sin(x2*pi*2)*10+y(1);
    x2 = 100-((100-x(1)-5)*x2+x(1));
    x1 = 100-x1;
elseif fla == 9
    x1 = [0:1/N:1];
    y1 = sin(x1*pi*2)*10+85;
    x1 = 70*x1+5; 
    x2 = [75 75 95 95 75 75 77 82 77 82 77 82 87 82];
    y2 = [85 75 75 95 95 75 75 83 91 83 75 75 83 91];
elseif fla == 10
    x1 = [5  95 95 5  5  5];
    y1 = [35 35 95 95 35 65];
    x2 = [0:1/N:1];
    y2 = sin(x2*pi*2)*25+65;
    x2 = 90*x2+5;
    x2 = [x2 x2(length(x2):-1:1)];
    y2 = [y2 y2];
end;

x = [x1 x2];
y = [y1 y2];
%plot(0,0,100,100,x, y)